#!/usr/bin/python
# -*- coding:utf-8 -*-
import json
import hashlib
class start():
    #注册用户
    def zhuce(self):
        with open('user_info','rb') as d: #读取原有的用户信息
            user_infos = json.load(d) #把原有的用户信息由字符串转换为数据类型
        add_name = raw_input('\033[32;1m请输入你要添加的用户：\033[0m') #获取用户输入的用户名
        if not user_infos.get(add_name): #判断原文件中是否有相同的用户名，如果有提示用户已存在，如果没有添加！
            add_pass = raw_input("\033[32;1m请输入您添加用户的密码：\033[0m")  #获取用户的密码并加密
            add_mail = raw_input("\033[32;1m请输入您添加用户的邮箱：\033[0m") #获取用户的邮箱
            hash = hashlib.md5()
            hash.update(add_pass)
            add_pass = hash.hexdigest()

            user_infos[add_name] = {'username':add_name,'mail':add_mail,'login_num': 0,'password':add_pass}  #添加用户信息
            with open('user_info','wb') as e:
                json.dump(user_infos,e)
            print "\033[32;1m%s用户添加完成\033[0m" % add_name
        else:
            print "\033[31;1m用户已存在\033[0m"
#obj = start()
#obj.zhuce()
    #登陆用户
    def denglu(self):
        with open('user_info','rb') as f:  #打开文件
            usernew_info = json.load(f)  #通过json将字符串转换成数据类型
        lock_user = 0  #定义循环起始值，用来判断用户输入错误密码的次数！
        for i in range(3):
            username = raw_input("\033[32;1m请输入您的用户名：")
            password = raw_input("\033[32;1m请输入您的密码：")
            hash = hashlib.md5()  #md5加密
            hash.update(password) #md5加密
            password = hash.hexdigest()#md5加密
            if usernew_info.get(username):  #判断用户输入的信息是否存在
                if usernew_info[username]['login_num'] == '3':  #判断用户是否被锁
                    print "\033[31;1m您好您的账号已被锁定\033[0m"
                    return
                if usernew_info[username]['password'] == password:  #判断用户密码是否匹配
                    return "登录成功"

                else:
                    print "\033[31;1m您好您输入的密码错误请重新输入\033[0m"
                    lock_user += 1  #累加错误密码的次数
                    if lock_user == 3:
                        usernew_info[username]['login_num'] = '3'  #错误3次后修改配置文件
                        with open('user_info','wb') as f:  #写入文件下次加载时使用
                            json.dump(usernew_info,f)
                        print "\033[31;1m您的账户输入错误了3次密码账号已被锁定\033[0m"
                        return
            else:
                print "\033[31;1m您输入的用户名不存在\033[0m"
#obj = start()
#obj.denglu()
    #关于
    def guanyu(self):
        print  '此程序创建时间为期2天。'
#obj = start()
#obj.guanyu()
